<!-- 中药新增-编辑 -->
<template>
  <div class="vue-box submit-box--dialog" style="width: 800px">
    <div class="c-card">
      <el-form :inline="false" label-width="11em" :model="state.model" ref="$form">
        <in-input
          v-for="(item, index) in formCfg"
          :hide="item.hide"
          :key="index"
          :type="item.type"
          :prop="item.prop"
          :name="item.label"
          :dictName="item.dictName"
          v-model="state.model[item.prop]"
          :options="item.options"
          :required="item.reqired"
          @remoteMethod="remoteMethod"
        />
      </el-form>
    </div>
  </div>
</template>
<script setup name="medicine-edit">
import { getCurrentInstance, onMounted, ref, reactive } from 'vue'
const { proxy } = getCurrentInstance()

const $form = ref(null)
// 获取插值
const prop = defineProps({
  param: { type: Object },
})

// ------------------ 数据 ------------------
const state = reactive({
  id: proxy.param.id || 0, // 获取传值id （0=添加，非0=修改）
  model: {
    // 数据 Model
  },
})

const formCfg = ref([
  {
    label: '药品代码',
    prop: 'med_list_codg',
    reqired: true
  },
  {
    label: '药品名称',
    prop: 'ver_name',
    reqired: true
  },
  {
    label: '药用部位',
    prop: 'med_part',
    reqired: true
  },
  {
    label: '用法用量',
    prop: 'cnvl_used',
    reqired: true
  },
  {
    label: '性味归经',
    prop: 'natfla',
    reqired: true
  }
])

// 组件加载时触发
onMounted(function () {
  if (state.id !== 0) {
    const params = {
      id: state.id,
    }
    sa.ajax('/api/webPresAdmin/CMDPCatalogueDetail', params, function (res) {
      if (!res.data) {
        return sa.alert('数据不存在')
      }
      state.model = res.data
    })
  }
})

// ------------------ 函数 ------------------
// 远程搜索方法（如果需要）
function remoteMethod(query, prop) {
  // 根据实际需求实现远程搜索逻辑
}

// 提交表单
defineExpose({
  ok: async function () {
    // 表单校验
    try {
      await $form.value.validate()
      let model = {
        ...state.model
      }
      // 如果是增加
      if (!state.id) {
        sa.ajax('/api/webPresAdmin/addCMDPCatalogue', model, function (res) {
          sa.alert('添加成功', function () {
            sa.closeModel()
            sa.currView().f5()
          })
        })
      } else {
        // 如果是修改
        sa.ajax('/api/webPresAdmin/editCMDPCatalogue', model, function (res) {
          sa.alert('修改成功', function () {
            sa.closeModel()
            sa.currView().f5()
          })
        })
      }
    } catch (error) {
      console.error(error)
    }
  },
})
</script>
<style></style>